c7b322aba675374a1687b58dbec611af1e9daa94,h2o-algos/src/main/java/hex/glm/GLMModel.java,GLMModel,score0,#Chunk[]#number#number[]#number[]#,82
Before Change
double eta = 0.0;
final double [] b = beta();
if(!_parms._use_all_factor_levels){ // good level 0 of all factors
for(int i = 0; i < _dinfo._catOffsets.length-1; ++i) if(chks[i].atd(row_in_chunk) != 0)
eta += b[_dinfo._catOffsets[i] + (int)(chks[i].atd(row_in_chunk))-1];
} else { // do not skip any levels
for(int i = 0; i < _dinfo._catOffsets.length-1; ++i)
After Change
double eta = 0.0;
final double [] b = beta();
for(int i = 0; i < _dinfo._catOffsets.length-1; ++i) {
if(chks[i].isNA(row_in_chunk)) {
eta = Double.NaN;
break;
}
long lval = chks[i].at8(row_in_chunk);
int ival = (int)lval;
if(ival != lval) throw new IllegalArgumentException("categorical value out of range");
if(_parms._use_all_factor_levels)
eta += b[_dinfo._catOffsets[i] + ival];